package com.gaofans.nrpc.common.serializer;

import com.gaofans.nrpc.common.serializer.jdk.JdkSerializer;

/**
 * 序列化器接口
 * @author GaoFans
 */
public interface Serializer {

    /**
     * 获取默认的jdk序列化实例
     * @return
     */
    static Serializer getInstance(){
        return new JdkSerializer();
    }

    /**
     * 序列化
     * @param t
     * @param <T>
     * @return
     */
    <T> byte[] serialize(T t);

    /**
     * 反序列化
     * @param bytes
     * @param clazz
     * @param <T>
     * @return
     */
    <T> T deserialize(byte[] bytes,Class<T> clazz);
}
